<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // promise原型上的方法2：catch
        const p1 = new Promise((resolve,reject)=>{
            try{
                console.log('开始请求A')
                throw new Error('请求A数据失败')
                setTimeout(()=>{
                    console.log('A请求成功')
                    resolve('okok')
                },2000)
            }catch(e){
                reject(e.message)
            }
        })
        // const p2 = p1.catch((reason)=>{//catch 接收一个回调函数作为参数，catch只处理失败状态的promise
        //     return new Promise((resolve,reject)=>{
        //         try{
        //             console.log('开始请求B')
        //             setTimeout(()=>{
        //                 console.log('B请求成功')
        //                 resolve('ohohoh')
        //             },2000)
        //         }catch(e){
        //             reject(e.message)
        //         }
        //     })

        // })//catch的返回值和then的返回值规则一致
        // 如果catch中没有处理promise实例的函数，则该promise实例直接穿透

        const p2 =p1.catch()
        console.log(p2)
    </script>
</body>
</html>